Semiconductor memory is widely used in various electronic devices such as cellular telephones, digital cameras, personal digital assistants, medical electronics, mobile computing devices, and non-mobile computing devices. Semiconductor memory may comprise non-volatile memory or volatile memory. A non-volatile memory allows information to be stored and retained even when the non-volatile memory is not connected to a source of power (e.g., a battery). Examples of non-volatile memory include flash memory (e.g., NAND-type and NOR-type flash memory), Electrically Erasable Programmable Read-Only Memory (EEPROM), resistive memory (e.g. ReRAM), ferroelectric memory (e.g., FeRAM), magnetoresistive memory (e.g., MRAM), and phase change memory (e.g., PRAM).
When a memory system is deployed in an electronic device, the memory system may program data, store data, read data and/or erase data. In some types of memory, cell characteristics of memory cells degrade with use so that memory cells tend to wear out after a certain amount of use (e.g. after being written a certain number of times). Different types of memories can have different wear-out characteristics and different memory access patterns can cause different patterns of wear. Wear leveling may be used to distribute wear across memory cells so that wear is not concentrated on particular memory cells, which could lead to early failure of such memory cells.